草庐IT

c++ - WinAPI : Add style to combo box

全部标签

c++ - C(或 C++?)语法 : STRUCTTYPE varname = {0};

通常人们会在堆栈上声明/分配一个结构:STRUCTTYPEvarname;此语法在C中意味着什么(或者此语法仅适用于C++,或者可能特定于VC++)?STRUCTTYPEvarname={0};其中STRUCTTYPE是结构类型的名称,如RECT或其他。这段代码可以编译,它似乎只是将结构的所有字节归零,但我想确定是否有人有引用。另外,这个构造有名称吗? 最佳答案 这是聚合初始化并且是有效的C和有效的C++。C++还允许您省略所有初始化器(例如零),但对于这两种语言,没有初始化器的对象是值初始化的或零初始化的://C++code:st

c++ - 如何将 13 位值映射到 4 位代码?

我有一些数据包处理程序的std::map。我在分析之前没有注意到,但不幸的是,这个map查找本身就消耗了大约10%的CPU时间(调用的时间太多)。输入数据中通常最多只存在10个键。所以我试图在map前实现一种键缓存。键值为13位整数。我知道只有8192个可能的键和8192个项目的数组可以提供持续的时间查找,但我已经感到羞愧并且不想使用这种天真的方法:(现在,我只是猜测一些散列方法可以非常快速地为13位整数生成4位代码值。有什么好主意吗?提前致谢。更新除了我的耻辱之外,我无法完全控制源代码,而且几乎禁止为此目的创建新数组。项目经理说(运行探查器的人)链表显示出小的性能提升,并建议使用st

c++ - 在 C 和 C++ 库之间共享变量的困境

我有一个简单的问题。我有两个库,一个用C编译,另一个用C++编译,其中C库由C++库链接和加载。我需要在C库中声明一个既可以读写又可以读写的结构实例。你如何做到这一点?谢谢编辑:补充说它是一个结构的实例,而不仅仅是声明 最佳答案 您需要创建一个单独的头文件,该文件包含在C和C++库中的模块中:#ifndefYOURSTRUCT_H#defineYOURSTRUCT_H#ifdef__cplusplusextern"C"{#endifstructYourStruct{//yourcontentshere};#ifdef__cplusp

c++ - 现在的 C 和 C++ 编译器的线程保证是什么?

我想知道编译器做出什么保证来确保对内存的线程写入在其他线程中具有可见的效果。我知道有无数个案例存在这个问题,我敢肯定,如果您有兴趣回答这个问题,您也知道,但请关注我将要介绍的案例。更准确地说,我担心会导致线程丢失其他线程完成的内存更新的情况。我不在乎(在这一点上)更新是非原子的还是同步不良:只要相关线程注意到更改,我就会很高兴。我希望编译器能够区分两种变量访问:访问必须有地址的变量;访问不一定有地址的变量。例如,如果您采用此代码段:voidsleepingbeauty(){inti=1;while(i)sleep(1);}因为i是本地的,我假设我的编译器可以优化它,让睡美人永远沉睡。v

c++ - 如何捕获 C 和 C++ 中的运行时错误?

就像修改一个CONSTint,我可以注册一个特定的函数来处理运行时错误,这样这种操作只会失败而不是终止应用程序吗? 最佳答案 如果您指的是C++,则有一个名为runtime_error的特定异常类。您可以使用catch子句捕获它:catch(std::runtime_error&e){}但是,C和C++中的许多事情(例如修改constint)会导致undefinedbehavior.您无法在运行时捕获它们。您无法捕获它们,因为不会抛出任何异常(从技术上讲,任何事情都可能发生,包括抛出异常(仅限C++),但这不是您可以或应该希望的事情

c++ - 要在我的 C++ 程序中使用 C 代码,我需要做什么特别的事情吗?

注意:我使用g++4.3.4版来编译我的C++代码。到目前为止,每当我想在我的代码中使用C风格的语言元素时,我似乎都可以将C的东西混合在我的C++中并与我的C++一起包含。我知道C++大部分向后兼容C...所以我想我的问题是这些:C的哪些部分与C++不向前兼容?如果我继续天真地将C的东西插入我的C++代码中,专业程序员会mock我吗?在同一个.cpp文件中包含C和C++代码的正确方法是什么?我可以继续使用g++来编译我的混合代码吗?对于这个问题,我主要关注处理单个.cpp文件和单个g++命令来编译它的解决方案。在这一点上,我真的不关心链接内容。 最佳答案

c++ - getch 相当于汇编语言

我在汇编语言中编程,在C++中使用x86,我需要知道汇编语言中的getch等价物而不是C++语言,因为我不想使用C++编程语言中的任何函数。我在网上找到了代码,但它将给定值保存到一个变量中,并在C++中创建。我只想使用该功能来停止程序,直到按下任何键。我不必在进一步的编程中使用输入的键值。 最佳答案 这是一个特定于操作系统的问题。例如,如果您使用的是Linux,则可以像这样发出read系统调用:;Allocatesomestackbuffer...subesp,256moveax,3;3=__NR_readfrommovebx,0;

c++ - CMAKE 链接到系统库

我们想用CMAKE系统构建一个共享库。它是这样的:lib/CMakeLists.txtsrc/CMakeLists.txtmodule/CMakeLists.txtmodule1.cfoo.cmodule1.c需要一些标准共享库,如librt。我们有add_library(modulemodule1.c)target_link_libraries(modulert)在module/子目录中。但仍然会收到来自librt的未知错误。 最佳答案 如果librt与-lrt链接,那么在CMake中您可以这样链接它:target_link_li

c++ - 标记化和 AST

有一个比较抽象的问题要问大家。我正在考虑参与静态代码分析项目。它使用C和C++作为开发语言,因此如果您的回复中有任何代码可以使用这两种语言中的任何一种,那就太好了。我的问题:我需要了解一些用于处理静态分析代码的基本概念/结构。我听说人们使用AST和标记化等东西。我只是想知道是否有什么可以阐明这些东西是如何应用于创建静态分析工具的?我更喜欢对标记化的解释,因为我不太了解它。我知道这是一种处理字符串的方法,但我对这个答案没有信心。此外,我知道我正在查看的项目在分析代码之前通过预处理器传递代码。谁能解释一下?当然如果是静态代码分析就不需要预处理了吗?希望有人能帮我解决这个问题。干杯。

c++ - 如何在 WinApi C++ 中更改控件的字体?

如何在win32API中更改编辑控件的字体。我希望能够在编辑控件上编辑字体的样式和颜色。 最佳答案 首先,您应该澄清您所谈论的是标准编辑控件与RichEdit控件-两者完全不同。您可以通过发送WM_SETFONT来更改字体消息到编辑控件。设置颜色是一个完全不同的过程。您可以通过响应WM_CTLCOLOREDIT来设置文本颜色编辑控件所有者中的消息。 关于c++-如何在WinApiC++中更改控件的字体?,我们在StackOverflow上找到一个类似的问题: